/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

// const p = new Promise((resolve) => {
//   setTimeout(() => {
//     resolve('hello')
//     console.log('hello', Date.now())
//   }, 10)
// })
//   .then((a) => {
//     return new Promise((resolve) => {
//       setTimeout(() => {
//         resolve(a + 'lagou')
//         console.log(a + 'lagou', Date.now())
//       }, 10)
//     })
//   })
//   .then((b) => {
//     return new Promise((resolve) => {
//       setTimeout(() => {
//         resolve(b + 'I ♥ U')
//         console.log(b + 'I ♥ U', Date.now())
//       }, 10)
//     })
//   })
//   .then((val) => {
//     console.log(val)
//   })

const createPromise = (str) =>
  new Promise((resolve) => {
    setTimeout(() => {
      resolve(str)
    }, 10)
  })

const p2 = createPromise('hello')
  .then((a) => createPromise(a + 'lagou'))
  .then((b) => createPromise(b + 'I ♥ U'))
  .then((val) => console.log(val))
